package me.firstapp.service.bbs;

import java.util.List;
import java.util.Map;

import me.firstapp.common.utils.Page;
import me.firstapp.module.bbs.Section;

public interface SectionService {

	/**
	 * 获取全部板块
	 */
	List<Section> findAll(Long apiClientId);

	/**
	 * 新增
	 * 
	 * @param name
	 *            板块名称 （必传）
	 * @param description
	 *            板块描述
	 */
	Section addSection(String name, String description, Integer sort, Long apiClientId);

	Page<Section> findSectionPage(Integer pageNo, Integer pageSize, Map<String, Object> searchParams, String sortParam,
			String sortType, Long apiClientId);

	/**
	 * 删除
	 * 
	 * @param ids
	 *            多个id时用","隔开
	 */
	void deleteSections(String ids, Long apiClientId);

	/**
	 * 板块更新
	 * 
	 * @param id
	 *            板块id
	 * @param name
	 *            板块名称
	 * @param description
	 *            板块描述
	 * @param sort
	 *            排序
	 * @param topicCounts
	 *            话题数量
	 * @param replyCounts
	 *            回复数量
	 * @param apiClientId
	 *            api客户id
	 */
	Section updateSection(Long id, String name, String description, Integer sort, Long topicCounts, Long replyCounts,
			Long apiClientId);

	/**
	 * 通过id查询板块
	 * 
	 * @param id
	 *            板块id
	 * @param apiClientId
	 *            api客户id
	 */
	Section findById(Long id, Long apiClientId);

	/**
	 * 批量更新板块话题和回复的数量
	 * 
	 * @param apiClientId
	 *            api客户id
	 */
	void updateTopicAndReplyCounts(Long apiClientId);

}
